Inserters are now smarter Twinsen A few days ago I was investigating a rather minor bug report related to "Rotational Asymmetry in Belt/Inserter interactions" (aka Inserter was not behaving identically when rotated). This was a classic case of floating point equality comparison. The Inserter would move it's arm and then it would pick up the item if the current arm orientation is equal to the desired arm orientation. Because of some chain of calculations related to rotation, some precision was lost and the equality check would fail for 1 tick, delaying the item pickup for 1 tick in some Inserter rotations. So I fixed that by finishing the inserter movement if it's close enough. Now the inserters should be a tiny bit faster in some rotations, plus all rotations should again be symmetrical and identical. While analyzing the code and Inserter behavior for that bug, I also noticed that inserters with stack bonus would do nothing for 1 tick after picking up an item from a belt. I changed it so inserters will start moving to a new target immediately after they pick up something. This also sped up the Stack Inserter by a tiny bit. Both the speedups were enough to fix another bug that was often regarded by the other devs as "not a bug": A Stack Inserter was not fast enough to pick up all the items placed on a belt by another Stack Inserter. Furthermore, because of different timings, the amount of items a Stack Inserter would pick up would depend on how far that Stack Inserter was from the item source: We released the change on Thursday. Something strange was quickly discovered after release... From Nefrums speedrun stream. As someone from Twitch chat noted "Inserters are so fast now, they even don't care about the side of belt". Remember that I fixed the rotation problem by finishing the Inserter movement if it's close enough. Well, what ended up happening was what now the Inserter would stop 0.0001 degrees short of perfectly vertical. That was of course closer to the other belt lane so the item would be dropped there. Previously it was always dropped perfectly vertical, and the lane decision algorithm would choose the right lane. The fix was easy and it's probably released by the time you are reading this. So with everything fixed, inserters are now more consistent, predictable and intuitive, things that I think are important for a precise game like Factorio. Some situation might end up being slightly slower or will consume a bit more electricity, but generally inserters are now faster.
Cars/Tanks remember their color Klonan This really is a tiny feature, the car and tank will now save the color of the passengers when they exit the vehicle. So now you won't forget which vehicle you were driving, and can warn everyone else on the server: "Pink tank is mine".
Hello, the bugfixing period boringly continues, we got down to 159 active bug reports, so in few weeks we should be finally down with this burden. But at least the graphics department has something new to show:
Blog thoughts Klonan As the time goes on, the nature of our weekly FFF post has changed. At the very beginning (FFF-1) it was to let people know that "we're still alive and working on the game", and over time we've grown into covering a range of different topics: Communicating our progress and roadmap of the next releases. Showing new features and gathering community feedback on them. Diving into the technical side of game development and particular challenges we face. 'Meta-posts' about the company and the changes outside of the game. Community spotlights and interesting Factorio related news. It is always an interesting challenge each week to determine what topics we might be able to cover in the FFF. During the weeks of rapid development the FFF can feel like a triumphant reveal of what we have been working on, and we excitedly await the community response. Other times, such as when most of the team is on bugfixing, we can take the oppourtunity to explore other points of discussion, such as the marketing post last week. The graph of the FFF readership over the last year is quite informative to look into: We had a good run back in January and February, we had week after week of really interesting posts and a build-up of excitement for the 0.17 release. Now after the release, the readership has stabilized at around 40-45,000 views a week (note, that the graph does not include people reading the blog post through Steam). The FFF is close to its 300th post now, with no signs of stopping soon, and the continued audience of dedicated readers each week help to keep us on track and focused on our quest towards 1.0. As we get closer to completion of the game, the general nature of the blog post will no doubt change even further. The good times of showing a new feature each week might be over, but I hope we will be able to provide interesting insights into the game and our development processes. I would also like to thank all the players/readers who share their thoughts with us each week, it is really great to have so much support and care for our project.
More remnants Dom, albert As for the conclusion of the topic opened in the FFF-288 we finally decided to go for a balanced solution in which the player can recognize what entity was destroyed and also walk through them. The solution of going up in the Z-axis is really attractive for designing the destroyed models, but it gives a lot of headaches to the game designers due its need of a bounding box. We are planning also a generic set of remnants for the modders who don’t feel like making the destroyed version of their own machines. Here an example of how a factory can look after a biter attack: These remnants are still a work in progress, many of them are not yet finished and we are planning more iterations with this subject. By now you'll find a sneak peek in today's release (0.17.36).
Inching closer to stable Klonan The last 2 weeks have been less productive than we would like on the bug fixing front. The Easter festivities along with a wave of illness have dampened our efforts. We have still managed to push out 2 more experimental releases, and fixed a few desyncs. We encountered one specific desync in the mass MP stress test last weekend, caused by a characters inventory size changing (such as researching the toolbelt technology) while the player is respawning. The graph of crashes paints a similar story to how the office atmosphere feels. It is natural though, most of the major crashes affecting most players are resolved, so all that remains are the more difficult issues that only affect a handful of players. This means that each bug fix is less effective at reducing the overall crash count. This last weekend, we had over 500 total crashes reported, which is a slight improvement over the prior weekend's ~650. One thing that makes our progress hard to evaluate is that we don't know how many people are actually playing experimental. Most people play through Steam, and so far we have found no way of determining how many people are opted-in to the 0.17 experimental through Steam. It could be that the game is more stable, or it could be that less people are playing. There are still over 250 open bug reports on our forum, so it seems it will be a few more weeks until the first stable 0.17. Some people have been asking when we will release the new GUI and GFX updates that we promised before 0.17 release. The plan is that after the first 0.17 stable version, some of the team will be moved from fixing bugs to working on features. At the point where we have a meaningful amount of new content ready (A few GUIs, some new GFX, etc.), we will release it as a new experimental 0.17 version. We plan to give some explanation and notice about these 'mini-content releases' in a FFF before they are each released.
New Campaign Abregado Have you ever been playing a Freeplay game and realised you don't know what your next big goal is? And then, once you decide to pick a new goal, you realise while you worked on automating the last goal, there were 10 new technologies unlocked and now you don't know which to pick next. These are the situations we hope to address with the new full Campaign. A guided Freeplay, in which the player plays through the whole tech tree, without being overloaded with choice, while still having the permanence and unidirectional progression of Factorio. The permanence problem has already been solved using the new map expansion technique which is playable in the Introduction scenario. Over the last year we have been working on the bigger design task of unravelling the tech tree and breaking it into a set of choices for the player. This task has been made all the more Interesting as the tech tree is also constantly getting tweaks and revisions over that time as well. I look forward to providing more insights but for now I will leave you with one example (read: spoiler): Just to note, we won't be changing the freeplay tech tree, which will still have all the choice and diverging paths as it does now.
Rail building changes kovarex The problem with rail building is that it has too many states. It depends whether you start building the rail with shift, to use the ghost mode or not, and then it also matters whether you still hold shift, to ignore trees or not. Moving from manual building to ghost rail building means cancelling the whole rail building and starting it again with the correct modifier. The problems were reaching the surface from time to time, and Twinsen even drew a nice little state diagram of the rail building system. It kind of peaked with this bug report. After some time, it became clear that we should simplify it. This is a nice example, where we can talk about change we just released (0.17.29) in a FFF. From now on, instead of 3 modes (building manually, ghost building, ghost building + tree/rock removal), we have only 2 modes, where the ghost building without obstacle deconstruction is not available anymore. So it doesn't matter anymore how you start the building, it just matters whether you are holding shift or not at the moment, which makes it consistent with the normal entity building and the ghost icon. Once the topic is opened, it is hard to leave it so easily, so we agreed that the rail building could be streamlined even more. The current model is, that you have to build one straight piece of rail first, and then you can use the rail builder on the edge of that rail. It is annoying generally, and especially for the new players, because he might miss the way how it is being used, as the straight rails are built exactly the same way as other entities. The reason we did it this way was mainly, because when we first introduced the (new at that time) rail builder, we weren't confident enough that it could replace even the basic straight rail building. But since the rail building is stable enough, we might go one more step forward. The plan is that the rail won't be used to build straight rails normally the way you can now. The rail item would be always used to build by the rail planner only. Instead of having to snap to an existing rail, you could just start building anywhere on the ground. Instead of showing the rail preview when holding the item, you would see the arrow as when starting the rail building, and you could rotate it with the R key. It would make sense, to make the arrow color/size different for starting a rail planner on the ground versus snapping to an existing rail, but other than that, it would be the same.
Hello, we are still focusing most of our resources towards fixing as many bugs as possible so we have stable release in reasonable time. In the meantime, the preparation for the continuation of the work on the GUI rewrite is still happening:
Removing RTL language translations Wheybags I'm sorry to say that we have removed the RTL language translations (Hebrew and Arabic) in 0.17.20. Until this point we've had a half implementation of RTL languages, where the text is simply flipped when we download it from Crowdin. This 'works' for a decent proportion of things, but not nearly 100%. In order to attain the level of polish we want for the 1.0 release, we would need to spend a lot of time implementing proper support for RTL layouts. This just doesn't make sense for us given our current goals, and the proportion of our player base which uses these languages (less than 0.1%). We decided that instead of completely gutting the translations, we could leave them in for those who enjoy them, but not to offer them in the GUI as defaults. The languages will remain up on Crowdin, and the locale files will still be present in game, but there will be no option in the in-game language options dialog to choose them. If you want to use an RTL language, you will have to manually edit your config file to set your locale. Detailed instructions are available on our forum. What this also means, is that we won't be investigating any bug reports about RTL issues.